8620. Три одинаковые цифры

 

Дано четырехзначное натуральное число. Определите, содержит ли оно ровно три одинаковые цифры.

 

Вход. Одно четырехзначное натуральное число n.

 

Выход. Выведите YES, если число n содержит в точности три одинаковые цифры, и NOиначе.

 

Пример входа 1

Пример выхода 1

2322

YES

 

 

Пример входа 2

Пример выхода 2

2234

NO

 

 

РЕШЕНИЕ

условный оператор

 

Анализ алгоритма

Выделим цифры четырехзначного числа: . Оно содержит в точности три (и только три) одинаковые цифры, если выполняется одно из следующих условий:

·        a = b = c, но при этом c d;

·        a = c = d, но при этом d b;

·        a = b = d, но при этом d c;

·        b = c = d, но при этом d a;

 

Если все четыре цифры числа n одинаковые, то следует вывести NO, так как в этом случае число n не содержит в точности три одинаковые цифры.

 

Реализация алгоритма

Читаем входное значение n.

 

scanf("%d", &n);

 

Выделим цифры числа .

 

a = n / 1000;

b = n / 100 % 10;

c = n / 10 % 10;

d = n % 10;

 

Выводим ответ в зависимости от выполнения условия.

 

if ((a == b && b == c && c != d) ||

    (a == c && c == d && d != b) ||

    (a == b && b == d && d != c) ||

    (b == c && c == d && d != a))

  printf("YES\n");

else

  printf("NO\n");